

async function  sendDate(options){
    var defaultOption = { 
        url:"/",
        method:"get",
        headers: {
            'Content-Type': 'application/json',
        },
        body:JSON.stringify( { } )
    }
    defaultOption = Object.assign(defaultOption,options)

    switch(defaultOption.headers['Content-Type']){
        case "application/json": { 
            defaultOption.body = JSON.stringify(defaultOption.body )
            break;
        }
        case "application/x-www-form-urlencoded":{
             break;
        }
        case "multipart/form-data":{
           var  body =    new FormData()
         
           for(  key in    defaultOption.body){
            body.append(key,defaultOption.body[key])
           }
           defaultOption.body  = body
        }
    }
//  如果后期 有传递一个数据格式的函数 , 就让 body按照此函数返回 的格式来处理
    if(options.datatype){
        defaultOption.body  = options.datatype(options.data)
    }
       return  await  fetch(defaultOption.url,{ 
        ...defaultOption
    }) .then(res => res.json())
}

sendDate({ 
    url:"/register",
    method:"post",
    body:data,
})



sendDate({ 
    url:"/register",
    method:"post",
    headers:{
        "Content-Type":"asdlaksdjhasjkdh"
//  假设这个请求头 必须是一个md5格式
    },
    body:data,
    datatype:md5
    // 这里的md5 是一个函数
})